<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Zak Patch System</title>
    <link rel="stylesheet" type="text/css" href="csound.css" />
    <meta name="generator" content="DocBook XSL Stylesheets V1.78.1" />
    <link rel="home" href="index.html" title="The Canonical Csound Reference Manual" />
    <link rel="up" href="PartOpcodesOverview.html" title="Part II. Opcodes Overview" />
    <link rel="prev" href="vectorialrandom.html" title="Vectorial Random Signal Generators" />
    <link rel="next" href="PluginTop.html" title="Plugin Hosting" />
  </head>
  <body>
    <div class="navheader">
      <table width="100%" summary="Navigation header">
        <tr>
          <th colspan="3" align="center">Zak Patch System</th>
        </tr>
        <tr>
          <td width="20%" align="left"><a accesskey="p" href="vectorialrandom.html">Prev</a> </td>
          <th width="60%" align="center">Part II. Opcodes Overview</th>
          <td width="20%" align="right"> <a accesskey="n" href="PluginTop.html">Next</a></td>
        </tr>
      </table>
      <hr />
    </div>
    <div class="chapter">
      <div class="titlepage">
        <div>
          <div>
            <h2 class="title"><a id="ZakTop"></a>Zak Patch System</h2>
          </div>
        </div>
      </div>
      <p>
    The zak opcodes are used to create a system for i-rate, k-rate or a-rate patching.  The zak system can be thought of as a global array of variables. These opcodes are useful for performing flexible patching or routing from one instrument to another. The system is similar to a patching matrix on a mixing console or to a modulation matrix on a synthesizer.  It is also useful whenever an array of variables is required.
  </p>
      <p>
    The zak system is initialized by the <a class="link" href="zakinit.html" title="zakinit"><em class="citetitle">zakinit</em></a> opcode, which is usually placed just after the other global initializations: <span class="emphasis"><em>sr</em></span>, <span class="emphasis"><em>kr</em></span>, <span class="emphasis"><em>ksmps</em></span>, <span class="emphasis"><em>nchnls</em></span>. The <span class="emphasis"><em>zakinit</em></span> opcode defines two areas of memory, one area for i- and k-rate patching, and the other area for a-rate patching. The <span class="emphasis"><em>zakinit</em></span> opcode may only be called once. Once the zak space is initialized, other zak opcodes can be used to read from, and write to the zak memory space, as well as perform various other tasks.
  </p>
      <p>
    Zak channels count from 0, so if you define 1 channel, the only valid channel is channel 0.
  </p>
      <p>
    Opcodes for the zak patch system are:
    </p>
      <div class="itemizedlist">
        <ul class="itemizedlist" style="list-style-type: disc; ">
          <li class="listitem">
            <p>
          Audio Rate: <a class="link" href="zacl.html" title="zacl"><em class="citetitle">zacl</em></a>,
          <a class="link" href="zakinit.html" title="zakinit"><em class="citetitle">zakinit</em></a>,
          <a class="link" href="zamod.html" title="zamod"><em class="citetitle">zamod</em></a>,
          <a class="link" href="zar.html" title="zar"><em class="citetitle">zar</em></a>,
          <a class="link" href="zarg.html" title="zarg"><em class="citetitle">zarg</em></a>,
          <a class="link" href="zaw.html" title="zaw"><em class="citetitle">zaw</em></a> and
          <a class="link" href="zawm.html" title="zawm"><em class="citetitle">zawm</em></a>.
        </p>
          </li>
          <li class="listitem">
            <p>
          Control Rate: <a class="link" href="zkcl.html" title="zkcl"><em class="citetitle">zkcl</em></a>,
          <a class="link" href="zkmod.html" title="zkmod"><em class="citetitle">zkmod</em></a>,
          <a class="link" href="zkr.html" title="zkr"><em class="citetitle">zkr</em></a>,
          <a class="link" href="zkw.html" title="zkw"><em class="citetitle">zkw</em></a>, and
          <a class="link" href="zkwm.html" title="zkwm"><em class="citetitle">zkwm</em></a>.
        </p>
          </li>
          <li class="listitem">
            <p>
          At initialization: <a class="link" href="zir.html" title="zir"><em class="citetitle">zir</em></a>,
          <a class="link" href="ziw.html" title="ziw"><em class="citetitle">ziw</em></a> and
          <a class="link" href="ziwm.html" title="ziwm"><em class="citetitle">ziwm</em></a>
        </p>
          </li>
        </ul>
      </div>
      <p>
  </p>
    </div>
    <div class="navfooter">
      <hr />
      <table width="100%" summary="Navigation footer">
        <tr>
          <td width="40%" align="left"><a accesskey="p" href="vectorialrandom.html">Prev</a> </td>
          <td width="20%" align="center">
            <a accesskey="u" href="PartOpcodesOverview.html">Up</a>
          </td>
          <td width="40%" align="right"> <a accesskey="n" href="PluginTop.html">Next</a></td>
        </tr>
        <tr>
          <td width="40%" align="left" valign="top">Vectorial Random Signal Generators </td>
          <td width="20%" align="center">
            <a accesskey="h" href="index.html">Home</a>
          </td>
          <td width="40%" align="right" valign="top"> Plugin Hosting</td>
        </tr>
      </table>
    </div>
  </body>
</html>
